home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / include / netinet / if_tr.h < prev    next >
C/C++ Source or Header  |  2009-10-07  |  4KB  |  112 lines

  1. /* Copyright (C) 1997, 2005 Free Software Foundation, Inc.
  2.    This file is part of the GNU C Library.
  3.  
  4.    The GNU C Library is free software; you can redistribute it and/or
  5.    modify it under the terms of the GNU Lesser General Public
  6.    License as published by the Free Software Foundation; either
  7.    version 2.1 of the License, or (at your option) any later version.
  8.  
  9.    The GNU C Library is distributed in the hope that it will be useful,
  10.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12.    Lesser General Public License for more details.
  13.  
  14.    You should have received a copy of the GNU Lesser General Public
  15.    License along with the GNU C Library; if not, write to the Free
  16.    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  17.    02111-1307 USA.  */
  18.  
  19. #ifndef _NETINET_IF_TR_H
  20. #define    _NETINET_IF_TR_H 1
  21.  
  22. #include <sys/cdefs.h>
  23. #include <sys/types.h>
  24.  
  25. /* IEEE 802.5 Token-Ring magic constants.  The frame sizes omit the preamble
  26.    and FCS/CRC (frame check sequence). */
  27. #define TR_ALEN        6        /* Octets in one token-ring addr */
  28. #define TR_HLEN     (sizeof (struct trh_hdr) + sizeof (struct trllc))
  29. #define AC        0x10
  30. #define LLC_FRAME     0x40
  31.  
  32. /* LLC and SNAP constants */
  33. #define EXTENDED_SAP     0xAA
  34. #define UI_CMD           0x03
  35.  
  36. /* This is an Token-Ring frame header. */
  37. struct trh_hdr
  38. {
  39.   u_int8_t  ac;            /* access control field */
  40.   u_int8_t  fc;            /* frame control field */
  41.   u_int8_t  daddr[TR_ALEN];    /* destination address */
  42.   u_int8_t  saddr[TR_ALEN];    /* source address */
  43.   u_int16_t rcf;        /* route control field */
  44.   u_int16_t rseg[8];        /* routing registers */
  45. };
  46.  
  47. /* This is an Token-Ring LLC structure */
  48. struct trllc
  49. {
  50.   u_int8_t  dsap;        /* destination SAP */
  51.   u_int8_t  ssap;        /* source SAP */
  52.   u_int8_t  llc;        /* LLC control field */
  53.   u_int8_t  protid[3];        /* protocol id */
  54.   u_int16_t ethertype;        /* ether type field */
  55. };
  56.  
  57. /* Token-Ring statistics collection data. */
  58. struct tr_statistics
  59. {
  60.   unsigned long rx_packets;     /* total packets received    */
  61.   unsigned long tx_packets;    /* total packets transmitted    */
  62.   unsigned long rx_bytes;    /* total bytes received       */
  63.   unsigned long tx_bytes;    /* total bytes transmitted    */
  64.   unsigned long rx_errors;    /* bad packets received        */
  65.   unsigned long tx_errors;    /* packet transmit problems    */
  66.   unsigned long rx_dropped;    /* no space in linux buffers    */
  67.   unsigned long tx_dropped;    /* no space available in linux    */
  68.   unsigned long multicast;    /* multicast packets received    */
  69.   unsigned long transmit_collision;
  70.  
  71.   /* detailed Token-Ring errors. See IBM Token-Ring Network
  72.      Architecture for more info */
  73.  
  74.   unsigned long line_errors;
  75.   unsigned long internal_errors;
  76.   unsigned long burst_errors;
  77.   unsigned long A_C_errors;
  78.   unsigned long abort_delimiters;
  79.   unsigned long lost_frames;
  80.   unsigned long recv_congest_count;
  81.   unsigned long frame_copied_errors;
  82.   unsigned long frequency_errors;
  83.   unsigned long token_errors;
  84.   unsigned long dummy1;
  85. };
  86.  
  87. /* source routing stuff */
  88. #define TR_RII             0x80
  89. #define TR_RCF_DIR_BIT         0x80
  90. #define TR_RCF_LEN_MASK     0x1f00
  91. #define TR_RCF_BROADCAST     0x8000    /* all-routes broadcast */
  92. #define TR_RCF_LIMITED_BROADCAST 0xC000    /* single-route broadcast */
  93. #define TR_RCF_FRAME2K         0x20
  94. #define TR_RCF_BROADCAST_MASK     0xC000
  95. #define TR_MAXRIFLEN         18
  96.  
  97. #ifdef __USE_BSD
  98.  
  99. struct trn_hdr
  100. {
  101.   u_int8_t trn_ac;                /* access control field */
  102.   u_int8_t trn_fc;                /* field control field */
  103.   u_int8_t trn_dhost[TR_ALEN];    /* destination host */
  104.   u_int8_t trn_shost[TR_ALEN];    /* source host */
  105.   u_int16_t trn_rcf;              /* route control field */
  106.   u_int16_t trn_rseg[8];          /* routing registers */
  107. };
  108.  
  109. #endif
  110.  
  111. #endif    /* netinet/if_tr.h */
  112.